try:
    i = 1
    while i:
        print(i)
        if i == 10:
            # break # 只能用在循环
            # return # 只能用在函数或者方法里面
            # raise 是异常的第二套机制 : 抛出机制.
            raise NameError # 主动的在这里抛出一个异常.用于终止当前的执行流程
        i += 1
except NameError as e:
    print("离开循环了!")
    print(e)



# 内存泄漏 : 动态申请的堆内存空间没有释放. 会泄漏
# 内存溢出 : 要加载的资源大小.超过剩下的内存大小.会溢出
# 寄存器(速度最快,空间最小)  栈(空间比寄存器大,速度比寄存器略慢)  堆(最大的.速度是最慢(相比较前面两个))
"""
    Python中比较常见的几个内建异常:
    Exception 常规错误的基类
    AttributeError 对象没有这个属性
    IOError        输入/输出操作失败 IO input and output
    IndexError     序列中没有此索引.往往出现在下标越界上 lst = [1,2,3] lst[3] 下标从0开始.
    KeyError       字典中没有这个键
    NameError      未声明或者没有初始化变量(对象)
    SyntaxError    Python的语法错误
    SystemError    一般是解析器系统错误
    ValueError     传入无效的参数
    ZeroDivisionError 0不可以作为除数

"""